# ast.AsyncWith

import ast

from 程序核心代码.ast节点.节点定义.具体ast节点.容器.带容器节点模版 import 带容器ast节点基础模型模板
from 程序核心代码.mvvm重构.基础定义.节点管理器.自动节点注册表 import 注册节点模型, 节点模型匹配器


@注册节点模型(ast.AsyncWith)
class 异步With上下文节点(带容器ast节点基础模型模板):

    def 节点数据解析(self):
        pass

    def __init__(self, ast节点, 所属节点模型管理器, 上级节点=None, 节点位置=None):
        super().__init__(ast节点, 所属节点模型管理器, "异步With上下文节点", 节点位置=节点位置, 上级节点=上级节点)
        #条件对象 = 节点匹配器(起始接口._ast节点.test, 起始接口.所属节点模型管理器)
        # 无作用域 未处理
        for 上下文管理器ast in self._ast节点.items:
            #上下文管理器ast.context_expr
            上下文管理器=节点模型匹配器(上下文管理器ast.context_expr, self.所属节点模型管理器)
            上下文管理器别名=节点模型匹配器(上下文管理器ast.optional_vars, self.所属节点模型管理器)
            起始接口 = 上下文管理器.添加接口到节点("数据流", "输出", 必须连接=True)
            结束接口 = 上下文管理器别名.添加接口到节点("数据流", "输入",  必须连接=True)
            起始接口.接口创建连接线模型(结束接口, self)
            # 起始接口.添加接口到节点("数据流", "输入", 接口名称="真假条件", 必须连接=True)
            起始接口 = 上下文管理器别名.添加接口到节点("数据流", "输出", 必须连接=True)
            结束接口 = self.添加接口到节点("数据流", "输入","内部参数："+上下文管理器别名.参数值, 必须连接=True)
            起始接口.接口创建连接线模型(结束接口, self)

